package com.ww.design.pattern.decorator.model;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Setter
@Getter
public class LoanAccountInfoDTO implements Serializable {

    private static final long serialVersionUID = 2896897235650133498L;
    private String accountNo;   //贷款账号
    private String customerId;  //客户编号
    private BigDecimal loanAmt;     //贷款金额
    private BigDecimal loanFirstAmt; //首付金额
    private BigDecimal basicsRate;  //贷款年利率
    private BigDecimal penaltyRate; //罚息利率
    private BigDecimal compoundRate; //提前还款服务费利率
    private String loanTerm;        //贷款期限
    private Integer discountType; //还款方式
    private String discountVal; //利息减免值
    private String discountDsc; //利息减免说明
    private String ccycode;         //币种类型
    private String scheduleType;    //还款计划类型,IPI 等额本金、EPI等额本息、IOI先息后本，FPI 利随本清、UDS自定义还款计划（不同自定义计划中以USD-A,USD-B来命名）
    private String loanPurpose;     //贷款用途
    private String repaySeq;        //还款顺序：默认 "FAIC"(费用、罚息、利息、本金)
    private Integer repayDay;       //还款日
    private Integer accountStatus;     //账户状态 1开户 4正常 8关户,16逾期
    private Date acctOpenDate;        //开户时间
    private Date acctMaturityDate;    //到期日期
    private String loanRound;              //舍入方式
    private Integer loanScale;            //保留小数位数
    private String combIntFlag; //是否计算复利
    private String advanceRepayFlag; //是否允许提前结息
    private Integer advanceRepayModel; //提前结息利息计划方式,1 取原还款计划利息，2 只收取当前整月利息，4 只收取当前到期按日算利息
    private String loanRemark;          //贷款备注
    private String orgCode;              //机构号

    private LoanAccountAttrDTO accountAttr;     //贷款属性信息

    private Integer graceDay; //宽限日期

    private String loanBeginTime;
    private String loanEndTime;

    private String productCode;

    private String syscuId; //贷款客户系统维一编码

    private Date nextRepayDate; //下次还款日期

    private BigDecimal nextRepayAmt; // 下次还款金额

    private Date repayDate; //结清时间

    private Integer instalNo; //期号

    private String shortenedPeriodFlag; // 是否提前结清缩期

    private Integer advancePeriod; // 提前结清开始期数

    private List<String> loanAccountNoList;

}